import type {
  SysDeptDtlVo,
  SysDeptPageQo,
  SysDeptQo,
  SysDeptTreeVo,
  SysDeptVo,
} from '#/system/dept'
import { http } from '@/utils/request/index'

/**
 * 获取系统机构分页列表
 * @param params 查询参数
 * @returns 系统机构列表
 */
export function getSysDeptPageListApi(params: SysDeptPageQo) {
  return http.request<PageResult<SysDeptVo>>('get', '/admin-api/system/sysDept/sysDeptPage', {
    params,
  })
}

/**
 * 获取系统机构树
 * @param params 查询参数
 * @returns 系统机构树
 */
export function getSysDeptTreeApi(params?: SysDeptPageQo) {
  return http.request<SysDeptTreeVo[]>('get', '/admin-api/system/sysDept/sysDeptTree', {
    params,
  })
}

/**
 * 获取系统机构详情
 * @param id 系统机构id
 * @returns 系统机构详情
 */
export function getSysDeptDetailsApi(id?: string) {
  return http.request<SysDeptDtlVo>('get', `/admin-api/system/sysDept/sysDeptDetails/${id}`)
}

/**
 * 新增系统机构
 * @param data 系统机构信息
 * @returns 系统机构id
 */
export function createSysDeptApi(data: SysDeptQo) {
  return http.request<string>('post', '/admin-api/system/sysDept/sysDeptCreate', {
    data,
  })
}

/**
 * 修改系统机构
 * @param data 系统机构信息
 * @returns 系统机构id
 */
export function updateSysDeptApi(data: SysDeptQo) {
  return http.request<string>('post', '/admin-api/system/sysDept/sysDeptUpdate', {
    data,
  })
}

/**
 * 删除系统机构
 * @param idList 系统机构id列表
 * @returns 系统机构id
 */
export function deleteSysDeptApi(idList: string[]) {
  return http.request<string>('post', '/admin-api/system/sysDept/sysDeptRemove', {
    params: {
      idList: idList.join(','),
    },
  })
}

/**
 * 启用系统机构
 * @param idList 系统机构id列表
 * @returns 系统机构id
 */
export function enableSysDeptApi(idList: string[]) {
  return http.request<string>('post', '/admin-api/system/sysDept/sysDeptEnable', {
    params: {
      idList: idList.join(','),
    },
  })
}

/**
 * 禁用系统机构
 * @param idList 系统机构id列表
 * @returns 系统机构id
 */
export function disableSysDeptApi(idList: string[]) {
  return http.request<string>('post', '/admin-api/system/sysDept/sysDeptDisable', {
    params: {
      idList: idList.join(','),
    },
  })
}
